package com.blank.white.common.exception;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @desc 公共异常枚举类
 * @classname ErrorsEnum
 */
@Getter
@AllArgsConstructor
public enum ErrorsEnum {
    /**
     * 成功
     */
    SUCCESS(200, "成功"),

    /**
     * 数据已存在
     */
    DUPLICATED_DATA(300, "数据已存在"),

    /**
     * 参数错误
     */
    ERROR_PARAM(400, "参数错误"),

    /**
     * 权限校验失败
     */
    USER_FAIL(401, "用户登录失败"),


    /**
     * 权限校验失败
     */
    AUTH_FAIL(403, "权限校验失败，用户暂无权限"),

    /**
     * 资源未找到
     */
    NOT_FOUND(404, "资源未找到"),

    /**
     * 请求方法不支持
     */
    REQUEST_METHOD_NOT_SUPPORTED(406, "请求方法不支持"),

    /**
     * 请求类型不支持请求类型不支持
     */
    REQUEST_TYPES_NOT_SUPPORTED(415, "请求类型不支持"),

    /**
     * 系统错误
     */
    ERROR_SYSTEM(500, "系统错误"),

    /**
     * 执行任务超时
     */
    THREAD_POOL_TIMEOUT(501, "执行任务超时"),

    /**
     * 执行任务异常
     */
    THREAD_POOL_ERROR(502, "执行任务异常"),


    /**
     * 分布式锁获取失败
     */
    RETRY_AGAIN(506, "系统忙,请重试！"),

    /**
     * 三方服务异常
     */
    THIRD_ERROR(507, "三方服务异常"),

    THIRD_DATA_ERROR(508, "三方服务数据异常"),

    APP_BUSINESS_ERROR(509, "应用或业务权限异常"),

    SCHOOL_AUTH_ERROR(520, "学校权限异常"),
    DEPT_AUTH_ERROR(521, "部门权限异常"),


    PARAM_ERROR(600, "参数错误"),


    NOT_ALLOW(601, "不允许"),

    APPROVAL_ERROR(602,"审核状态异常，请刷新列表重试"),
    EXCEPTION_CONFIG_ERROR(603,"规则配置查询异常，请联系管理员"),
    EXCEPTION_CONFIG_LOCK_ERROR(604,"规则配置正在被修改，请稍后再试"),
    UPLOAD_ERROR(605, "文件检验异常"),
    /*
     *  sentinel异常
     */
    FLOW_ERROR(701,"限流中，请稍后再试"),
    DEGRADE_ERROR(702,"降级中，请稍后再试"),
    PARAMFLOW_ERROR(703,"热点参数限流中，请稍后再试"),
    SYSTEMBLOCK_ERROR(704,"系统规则（负载/...不满足要求），请稍后再试"),
    AUTHORITY_ERROR(705,"授权规则不通过，请稍后再试"),
    CLIENT_ERROR(801,"client校验失败"),

    /**
     * 文件异常
     */
    FILE_ERROR(801,"文件异常"),

    ;

    private Integer code;

    private String message;
}
